﻿/**
 *
 * @file OperSubsystemPlate.h
 * @brief  SEA平板 双曲率板 单曲率板 表格操作器
 * @author wangning (2185896382@qq.com)
 * @date 2024-12-23
 *
 */
#ifndef _OPER_SUBSYSTEM__Plate_H___
#define _OPER_SUBSYSTEM__Plate_H___

#include "OperatorsInterface/OperAbstractSubsystem.h"

namespace ModelOper
{
    /**
     * @brief SEA平板 双曲率板 单曲率板 表格操作器
     * @author wangning (2185896382@qq.com)
     * @date 2024-12-23
     */
    class OperSubsystemPlate : public EventOper::OperAbstractSubsystem
    {
    public:
        explicit OperSubsystemPlate() = default;
        virtual ~OperSubsystemPlate() = default;
        /**
         * @brief 执行UI操作
         * @return true
         * @return false
         * @author LiBaojun (libaojunqd@foxmail.com)
         * @date 2024-12-06
         */
        bool execGUI() override;
        /**
         * @brief 执行业务操作
         * @return true
         * @return false
         * @author LiBaojun (libaojunqd@foxmail.com)
         * @date 2024-12-06
         */
        bool execProfession() override;
        /**
        * @brief 编辑子系统
        * @param[i]  seaID          子系统id
        * @author wangning (2185896382@qq.com)
        * @date 2024-12-10
        */
        virtual void editSubsystem(const int seaID) override;
        /**
         * @brief 删除物理属性
         * @param[i]  seaID          子系统id
         * @author wangning (2185896382@qq.com)
         * @date 2024-12-10
         */
        virtual void removeSubsystem(const int seaID) override;
        /**
        * @brief 设置属性
        * @param[i]  name           属性名
        * @param[i]  text    当前值
        * @param[i]  attrIndex      属性索引
        * @param[i]  seaID         子系统id
        * @author LiBaojun (libaojunqd@foxmail.com)
        * @date 2024-12-05
        */
        virtual void setAttribute(const QString &name, const QString& text, const int attrIndex, const QList<int> & seaID) override;
    };
    //注册对象
    Register2FITKOperatorRepo(OperSubsystemPlate, OperSubsystemPlate);
    Register2FITKOperatorRepo(OperSubsystemDoublyCurvedShell, OperSubsystemPlate);
    Register2FITKOperatorRepo(OperSubsystemSinglyCurvedShell, OperSubsystemPlate);

}

#endif